#!/bin/bash

# 颜色定义
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[0;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color

# 打印彩色标题
echo -e "${BLUE}===============================================${NC}"
echo -e "${BLUE}        Node.js Cluster 实现演示              ${NC}"
echo -e "${BLUE}===============================================${NC}"

# 检查Node.js是否安装
if ! command -v node &> /dev/null; then
    echo -e "${RED}错误: Node.js未安装。请先安装Node.js。${NC}"
    exit 1
fi

# 显示Node.js版本
NODE_VERSION=$(node -v)
echo -e "${GREEN}使用 Node.js 版本:${NC} $NODE_VERSION"
echo ""

# 检查文件是否存在
if [ ! -f "master.js" ] || [ ! -f "worker.js" ]; then
    echo -e "${RED}错误: 未找到必要的文件。请确保 master.js 和 worker.js 存在于当前目录中。${NC}"
    exit 1
fi

# 运行主服务器
echo -e "${YELLOW}正在启动集群服务器...${NC}"
echo -e "${YELLOW}按 Ctrl+C 终止服务器${NC}"
echo ""

# 启动服务器
node master.js

# 捕获Ctrl+C信号并进行清理
trap 'echo -e "\n${RED}终止服务器...${NC}"; pkill -f "node master.js"; pkill -f "node worker.js"' INT
